// 购物车相关API调用 - 与后端CartItemApi接口保持一致

import request from '@/utils/request'
import type { CartItem } from '@/types/cart'

// 根据会员ID查询购物车项
export const getCartItems = (memberId: number) => {
  // 确保memberId是整数（处理Long类型序列化问题）
  const userId = parseInt(String(memberId))
  return request.get<CartItem[]>('/api/cartItems', { params: { memberId: userId } })
}

// 根据购物车项ID查询单个购物车项
export const getCartItemById = (id: number) => {
  return request.get<CartItem>(`/api/cartItems/id/${id}`)
}

// 保存购物车项（新增或更新数量）
export const saveCartItem = (item: CartItem) => {
  return request.post<boolean>('/api/cartItems', item)
}

// 更新购物车项
export const updateCartItem = (item: CartItem) => {
  return request.put<boolean>('/api/cartItems', item)
}

// 批量删除购物车项
export const deleteCartItems = (ids: number[]) => {
  console.log('删除API调用，IDs:', ids)
  // 后端期望Integer[]，确保数据格式正确
  const integerIds = ids.map(id => parseInt(String(id)))
  console.log('转换后的IDs:', integerIds)
  return request.delete<number>('/api/cartItems', { data: integerIds })
}

// 根据商品ID查询购物车项ID数组
export const getCartItemIdsByProductId = (productId: number) => {
  return request.get<number[]>(`/api/cartItems/productId/${productId}`)
} 